The present invention relates to a method of achieving communication by means of the wireless application protocol, WAP, between a first application in a first computer unit and a second application in a second computer unit, where the first application is a Windows(copyright) application.
The first computer unit includes a WinSock TCP base provider operating beneath Winsock SPI and a TCP/UDP/IP stack operating beneath the WinSock TCP base provider.
The first application includes the functionality of communicating by means of TCP/IP via the TCP/UDP/IP stack and the WinSock TCP base provider.
The present invention also relates to a computer program product that includes a program code, and a computer readable medium carrying a computer program code, which code, when executed by a computer unit, carries out functions possessed by a module in accordance with the inventive method.
For the sake of simplicity, a number of acronyms have been used in this description and in the accompanying Claims. Although these acronyms are well known to the person skilled in this art, the main parts of the compound terms will be explained for the sake of clarity.
WAPxe2x80x94Wireless Application Protocol, TCPxe2x80x94Transmission Check Protocol, UDPxe2x80x94User Datagram Protocol, IPxe2x80x94Internet Protocol, TDIxe2x80x94Transport Driver Interface, SPIxe2x80x94Service Provider Interface, LSPxe2x80x94Layered Service Provider, SOAPxe2x80x94Simple Object Access Protocol, POP3xe2x80x94Post Office Protocol version 3, IMAP4xe2x80x94Internet Message Access Protocol version 4, SMTPxe2x80x94Simple Mail Transfer Protocol, WSP Wireless Session Protocol, URIxe2x80x94Universal Resource Identifier, IISxe2x80x94Internet Information Server.
It has long been known to use different protocols when communicating between two or more computer units. These protocols check how information shall be packed when transmitting information, how said information shall be forwarded during transport between the computer units, and how the information received shall be interpreted.
When an application in a computer unit shall communicate via a network, contact is established between the application and the hardware that connects the computer unit to the network via special modules or software products. The operating system Windows(copyright) includes a so-called WinSock API, thereby enabling a number of sockets or connections to be established in respect of such communication. WinSock API is comprised of an interface that includes a set of defined functions that enable such sockets to be formed.
These sockets can be adapted to operate in accordance with different protocols and beneath the WinSock layer there is found a so-called SPI which operates against a number of base providers (also called base protocols and base transport service providers) and layered service providers (also called layered protocols and layered transport service providers) which are adapted to receive or send information via specific protocol stacks. Different Windows(copyright) applications are adapted to communicate via specific protocols. The base providers normally used for communication over the global network Internet, and also within local networks such as an ethernet, include the so-called WinSock TCP base provider and WinSock UDP base provider.
A base provider operates against a so-called stack via an interface designated TDI. The stack constitutes the software that operates nearest the hard connection between the computer unit and the network, in other words the network interface card. Outgoing information is packed in the stack in the format that the information shall have when it is sent over the network, whereas incoming information is unpacked in a manner which enables it to be used by the computer unit. The stack used traditionally for communication over the Internet is called the TCP/UDP/IP stack and sometimes only the TCP/IP stack or the IP stack.
Because of the progressive increase in the use of wireless mobile telephones, it is desirable that communication between a computer unit and a mobile telephone can be established for the transmission of information. WAP is a protocol that has been created to enable such communication to be achieved efficiently, despite the low bandwidth that is often available for mobile telephones.
The various Windows(copyright) applications, base providers and stacks required for such communication are not adapted for WAP communication. For instance, a Windows(copyright) application, such as an IIS or a browser in a personal computer cannot communicate directly in accordance with WAP.
It is also known to establish gateways that can translate between WAP and a more readily handled protocol, such as HTTP. These gateways, for instance, may interpret information according to WAP and repack the information according to HTTP. This enables a WAP application to communicate with, e.g., a Windows(copyright) application.
However, the constant need to communicate via a gateway that has such a function has a limiting effect. Neither is security satisfactory in the case of such communications. When encryption is used, it is necessary for the gateway to decrypt the message and repack in order to again encrypt the message. This means that decrypted, sensitive information, is available on this gateway, which is unacceptable in many instances.
The necessity of acquiring, configuring and administering a separate WAP gateway is also troublesome in many practical applications.
It is also known that WAP servers that include server programs especially written for communication in accordance with WAP can be constructed. One example in this respect is the Nokia WAP Server.
Although such WAP servers can solve the security problems associated with gateways, they have the limitation that all information must be stored directly in the WAP server and not in the web server that would otherwise have been used.
In conjunction with the present invention, it will also be mentioned that it is known to use a so-called WinSock LSP to check an established socket. An LSP is placed between the WinSock SPI and the base provider and can be allotted different functions depending on what is desired. Such functions may be to reserve a given bandwidth for an established socket or to encrypt and decrypt information transmitted via a socket.
Technical Problems
When considering the present standpoint of techniques as described above, and with a starting point from a method according to the aforesaid technical field, it will be seen that a technical problem exists in establishing communication between a WAP application and a Windows(copyright) application when the Windows(copyright) application is not adapted for communication with a WAP application.
Another technical problem is one of providing communication where unpacking and possible decryption do not take place on an intermediate gateway.
Another technical problem resides in providing communication that is not restricted by the access to gateways in the communications path that can interpret between WAP and, e.g., HTTP.
Another technical problem is one of providing so-called end-to-end security via WAP with encrypted communication that can only be unpacked by the receiver and where both the WAP application and the Windows(copyright) application are able to authenticate each other.
With respect to a Windows(copyright) application that is adapted to communicate via a known protocol, such as HTTP, POP3, IMAP4 or SMTP, a technical problem resides in communicating via the more effective WAP protocol instead, and therewith save bandwidth.
Another technical problem is one of translating between a WAP protocol and one or more protocols belonging to one or more different Windows(copyright) applications without the assistance of WAP gateways or proxies.
In conjunction with such a method, a technical problem resides in enabling authentication to be achieved efficiently and safely through the medium of the user name and password.
Another technical problem resides in achieving communication via WAP in respect of certain applications, without preventing other applications from communicating via TCP in a normal manner.
In respect of a computer unit that is connected on some occasions to a network via a first device having a first bandwidth, such as via a GSM telephone, and on other occasions is connected to the network via a second device having a second bandwidth, such as via a modem and a fixed telephone line, where the first bandwidth is lower than the second bandwidth, a technical problem exists in enabling the connection at the lower bandwidth to be effected in accordance with WAP and enabling the connection at the higher bandwidth to be effected in accordance with TCP/IP.
Another technical problem is one enabling several Windows(copyright) applications that are server applications on one and the same computer unit to communicate simultaneously in accordance with WAP.
Another technical problem is one of managing the difference whereby a protocol above TCP/IP operates with a partial response, whereas WAP requires a complete response.
Solution
With the intention of providing a solution to one or more of the aforesaid problems, the present invention takes as its starting point a method for receiving, via a network, a communication between a first application in a first computer unit and a second application in a second computer unit with the aid of the WAP protocol, where the first application is a Windows(copyright) application.
The first computer unit includes a WinSock TCP base provider operating beneath WinSock SPI, and a TCP/UDP/IP stack operating beneath the WinSock TCP base provider.
The first application also includes the functionality of communicating by means of TCP/IP via the TCP/UDP/IP stack and the WinSock TCP base provider.
Taking its starting point from such a method, it is proposed in accordance with the present invention that the first computer includes a module and a WAP stack, said module being allocated the function of forming an interface between the WAP stack and the first application.
It is also proposed in accordance with the present invention that the module operates between WinSock SPI and the WinSock TCP base provider.
According to a preferred embodiment of the invention, the first computer unit may include a WinSock UDP base provider that operates beneath WinSock SPI and parallel with the WinSock TCP base provider, where the TCP/UDP/IP stack also operates beneath the WinSock UDP base provider. It is also proposed in accordance with the invention that the WAP stack operates between the module and the WinSock UDP base provider.
In this case, a connection can be established between the first and the second application via the TCP/UDP/IP stack, the WinSock UDP base provider, the WAP stack, and said module.
According to another preferred embodiment of the invention, it is proposed that the first computer unit includes a WinSock base provider for WAP, operating beneath the module parallel with the WinSock TCP base provider, and that the WAP stack works beneath the WinSock base provider for WAP parallel with the TCP/UDP/IP stack.
In this case, a connection can be established between the first and the second application via the WAP stack, the WinSock base provider for WAP and said module.
The inventive unit has three general tasks; it shall translate between a WAP protocol and one or more protocols belonging to one or more different first applications; it shall map incoming or outgoing WAP requests or WAP sessions to TCP sockets, and it shall be transparent to applications that do not communicate in accordance with WAP.
The translating function is carried out in different ways, depending on how the first application works. When the first application works in accordance with HTTP, the module translates between WAP and HTTP in accordance with prescribed standard specifications.
This means that the first application can also work in accordance with SOAP. When the first application works in accordance with an e-mail protocol, such as POP3, IMAP4 or SMTP, it is proposed in accordance with the invention that the module will effect mapping of each command and response on one or more of the fields in a WSP message.
With the intention of enabling messages to be handled where the first application requires authentication through the medium of a user name and password, it is proposed in accordance with the present invention that the module respectively reads and writes the user name and password from and into the header field of the messages concerned in accordance with WSP.
The present invention provides a number of different possible embodiments so as to enable a decision to be made as to whether the socket shall communicate according to WAP or according to TCP/IP.
According to one possible embodiment of the present invention, a first socket is established against one or more first ports in the second computer unit, a second socket is established against one or more second ports that are separate from the first ports and belong to the second computer unit, and that said module communicates according to WAP or according to TCP/IP on the basis of the port used.
According to a further possible embodiment of the invention, the first or the second computer unit is allocated a number of different IP addresses, of which one or more is chosen to receive WAP requests or sessions, and said module communicates in accordance with WAP or in accordance with TCP/IP on the basis of the IP address used.
The present invention also includes a further possible embodiment, in which the first computer unit is sometimes connected to the network via a first device having a first bandwidth, such as via a GSM telephone, and in other instances is connected to the network via a second device having a second bandwidth, such as via a modem and a fixed telephone line, where said bandwidth is lower than the second bandwidth. According to this embodiment, said module reads the available bandwidth and communication in accordance with WAP is used when the available bandwidth is equal to or lower than the first bandwidth, whereas communication in accordance with TCP/IP is used when the available bandwidth is higher than the first bandwidth.
According to the invention, said module also performs a check in which it is able to decide to which first application an incoming WAP request or session belongs.
This check can comprise the detection of a predetermined field in a header belonging to an incoming message.
When the WAP stack is used on a plurality of ports, the ports can be used to carry out the check.
When an application is addressed through an URI, it is proposed in accordance with the present invention that the first application to which a given incoming request or session belongs is identified by identifying a unique field of a URI belonging to the request or session, such as the protocol-identifying field, the host-identifying field, the port-identifying field, the path-identifying field, and/or a parameter field.
The check may also comprise the detection of a predetermined WSP method that is used by said request or session and that is unique to the first application that uses the WSP method.
The first applications may also be identified through the medium of the TCP port or ports on which they listen.
With the intention of handling the fact that a WAP application requires a complete response whereas the TCP socket delivers only a partial-response, it is proposed in accordance with the invention that when the first application uses a TCP socket, said module stores the partial-responses from the first application until a response is complete, and then sends this complete response to the second application.
According to the present invention, said module shall be designed to constitute a WinSock LSP.
An inventive module can be used in different contexts. Firstly, it may be of interest to use said module when the second computer unit is comprised of a computer unit adapted for communication by means of WAP, such as a WAP telephone, or a computer unit connected to the network via a wireless telephone.
Secondly, it may be of interest to use the module when the second application is comprised of a WAP gateway or a WAP server.
The present invention may also be of interest when the second computer unit is comprised of a computer unit having the same properties as the first computer unit and where the second application is comprised of a Windows(copyright) application. This situation allows the first computer unit to communicate with the second computer unit by means of WAP when both computer units are equipped with a module in accordance with the invention.
The network used may be the global network Internet.
The present invention also relates to a computer program product and to a computer readable medium. The computer program product includes computer program code which, when executed by a computer unit, carries out the functions possessed by a module, a WAP stack and, when appropriate, a WinSock base provider for WAP in accordance with the present invention.
Stored on the computer readable medium is computer program code which when executed by a computer unit carries out the functions possessed by a module, a WAP stack and, when appropriate, a WinSock base provider for WAP, in accordance with the present invention.
Advantages
Those advantages that can be primarily associated with a method or a computer program product according to the present invention reside in the ability to establish communication between a WAP application and a Windows(copyright) application, where unpacking and possible decryption are not performed on any intermediate gateway. The present invention thus affords communication that is not restricted by the availability in the communications path of gateways that can interpret between WAP and, e.g., HTTP.
The invention also affords the possibility of end-to-end security with an encrypted communication that can only be unpacked by the receiver and where both the WAP application and the Windows(copyright) application can authenticate each other.
Another advantage afforded by the invention is that it enables Windows(copyright) applications that communicate via a known protocol, such as HTTP, to communicate instead via the more effective WAP protocol and therewith save bandwidth.